package com.wangqingbo.myspringboot212.controller;

import com.wangqingbo.myspringboot212.entity.JdbcVo;
import com.wangqingbo.myspringboot212.entity.StudentInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

/**
 * 控制器
 * 这是一个控制器，用注解@Controller
 */
@Controller
public class MyController {

    @Autowired
    private JdbcVo jdbcVo;

    // 注入学生信息
    @Autowired
    private StudentInfo studentInfo;
    /**
     * 测试SPringBoot
     * 方法返回json数据，使用注解 @ResponseBody
     * @return
     */
    @RequestMapping("/hello")
    @ResponseBody
    public String hello()
    {
        return "这是我的第一个SpringBoot项目！";
    }

    /**
     * 获取数据库的配置信息
     * 使用注解@ResponseBody返回json数据格式
     * RequestMapping中如果有多个参数，参数名不能省略
     * 一个参数时，value可以省略，@RequestMapping("/getDb")
     * 多个参数时，value不可以省略，@RequestMapping(value = "/getDb",method = RequestMethod.POST)
     * 如果使用post访问，可以使用工具postman来测试
     * @return
     */
    @RequestMapping(value = "/getDb",method = RequestMethod.GET)
    @ResponseBody
    public JdbcVo getDb(String id,String name)
    {
      System.out.println("参数id=" + id + ",name=" + name);
      return jdbcVo;
    }

    @GetMapping(value = "/getTypeDb")
    @ResponseBody
    public JdbcVo getTypeDb(String id,String name)
    {
        System.out.println("参数id=" + id + ",name=" + name);
        return jdbcVo;
    }

    /**
     * 从配置文件中读取学生的配置信息
     * @return 学生的配置信息
     */
    @RequestMapping(value = "/getStu")
    @ResponseBody
    public StudentInfo getStu()
    {
        return studentInfo;
    }

    /**
     * 从配置文件中读取学生的配置信息
     * @return 学生的配置信息
     */
    @RequestMapping(value = "/getStuForJsp")
    public ModelAndView getStuForJsp()
    {
        ModelAndView mv = new ModelAndView();
        // 把学生对象放到mv中
        mv.addObject("student",studentInfo);
        // 配置了视图解析器，返回index.jsp页面，参数可以省略".jsp"
        mv.setViewName("index");
        return mv;
    }

    /**
     * 国际化
     * @return
     */
    @RequestMapping(value = "/getI18n")
    public ModelAndView getI18n()
    {
        ModelAndView mv = new ModelAndView();
        // 把学生对象放到mv中
        mv.addObject("student",studentInfo);
        // 配置了视图解析器，返回index.jsp页面，参数可以省略".jsp"
        mv.setViewName("i18n");
        return mv;
    }




}
